package ControlLayer;
import java.util.ArrayList;
import ModelLayer.*;
//model layer package has to be imported

/**
 * 
 * 
 * @author (Brian, Jesper, Jesper og  Hoang) 
 * @version ()
 */
public class KundeCtr
{
    //Instance variabler
    private KundeContainer kundeContainer;
    
    //Constructor
    public KundeCtr()
    {
        kundeContainer = KundeContainer.getKundeContainer();
    }
    
    //Get metode til at lave en udskrivning af kundegruppe
    public String getKundeGruppe(int _id)
    {   
        KundeGruppe kundeGruppe = kundeContainer.searchById(_id);
        
        String retStr = "";
        
        if(kundeGruppe != null)
        {
            retStr = " ----------------" + "\n";
            retStr += " KundeGruppe Info:" + "\n";
            retStr += " Id: " + kundeGruppe.getId() + "\n";
            retStr += " Firma Navn: " + kundeGruppe.getFirmaNavn() + "\n";
            retStr += " Adresse: " + kundeGruppe.getAdresse() + "\n";
            retStr += " Telefon nummer: " + kundeGruppe.getTelefonNummer() + "\n";
            retStr += " Købt for i alt: " + kundeGruppe.getStatistik() + "\n";
            retStr += " ----------------";
        }
        
        return retStr;
    } 
    
    //Metode til at finde kundegruppe efter id
    public KundeGruppe findKundeGruppe(int _id)
    {
        return kundeContainer.searchById(_id);
    }
    
    //Metode til at oprette en kundegruppe
    public void createKundeGruppe(int _id, String _firmaNavn, String _adresse, int _telefonNummer, double _statistik)
    {   
        KundeGruppe nyKundeGruppe = new KundeGruppe(_id, _firmaNavn, _adresse, _telefonNummer, _statistik);
        
        kundeContainer.addKundeGruppe(nyKundeGruppe);
    }
    
    //Metode til at slette en kundegruppe
    public boolean deleteKundeGruppe(int _id)
    {
        boolean success = false;
        KundeGruppe deleteKundeGruppe = kundeContainer.searchById(_id);
        
        if(deleteKundeGruppe != null)
        {
            kundeContainer.deleteKundeGruppe(deleteKundeGruppe);
            
            success = true;
        }
        
        return success;
    }
    
    //Metode til at opdatere en kundegruppe
    public boolean opdaterKundeGruppe(int _id, String _firmaNavn, String _adresse, int _telefonNummer, double _statistik)
    { 
        boolean success = false;
        KundeGruppe kundeGruppe = kundeContainer.searchById(_id);
        
        if(kundeGruppe != null)
        {
            kundeContainer.deleteKundeGruppe(kundeGruppe);
            
            kundeGruppe.setId(_id);
            kundeGruppe.setFirmaNavn(_firmaNavn);
            kundeGruppe.setAdresse(_adresse);
            kundeGruppe.setTelefonNummer(_telefonNummer);
            kundeGruppe.setStatistik(_statistik);
            
            kundeContainer.addKundeGruppe(kundeGruppe);
            
            success = true;
        }

        return success;
    }
    
    //Metode til at vise alle kundegrupper
    public String listAllKundeGruppe()
    {
        String retStr = "";
        
        ArrayList<KundeGruppe> allKundeGruppe = kundeContainer.getAllKundeGruppe();
        
        if(allKundeGruppe != null)
        {
            retStr += "\n";
            retStr += " Alle KundeGrupper:" + "\n";
            
            for(KundeGruppe kundeGruppe : allKundeGruppe)
            {
                retStr += " id: " + kundeGruppe.getId() + " Firma Navn: " + kundeGruppe.getFirmaNavn() + "\n";         
            }
        }
        
        return retStr;
    }
}
